package DemoLibrarySystem;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class LibraryOperator {
    private final ArrayList<Library> libraries=new ArrayList<>();
    Scanner sc=new Scanner(System.in);
    Random r =new Random();

    //展示所有图书
    public void AllLibrary(){
        for (int i = 0; i < libraries.size(); i++) {
            System.out.println("----------");
            System.out.println("ISBN:"+libraries.get(i).getISBN());
            System.out.println("书名："+libraries.get(i).getName());
            System.out.println("----------");
        }
        return;
    }

    //查找图书，并返回它在集合中的位置
    public int SearchLibrary(long ISBN){
        int flag=0,num=0;
        for (int i = 0; i < libraries.size(); i++) {
            if(libraries.get(i).getISBN()==ISBN){
                flag=1;
                num=i;
                System.out.println("----图书信息如下：----");
                System.out.println("ISBN号："+libraries.get(i).getISBN());
                System.out.println("图书名称："+libraries.get(i).getName());
                System.out.println("作者："+libraries.get(i).getAuthor());
                System.out.println("出版社："+libraries.get(i).getPress());
                System.out.println("价格："+libraries.get(i).getPrice());
                System.out.println("库存数量："+libraries.get(i).getNumber());
                System.out.println("--------------------");
            }
        }
        if(flag==0) System.out.println("该图书不存在！");
        return num;
    }

    //添加图书
    public void Add(Library l){
        libraries.add(l);
        return;
    }
    public void AddLibrary(){
        Library n=new Library();
        System.out.println("------------------");
        System.out.println("请输入ISBN号：");
        long q1=sc.nextInt();
        if(SearchLibrary(q1)!=0){
            System.out.println("该图书已存在！");
            return;
        }
        n.setISBN(q1);
        System.out.println("请输入图书名称：");
        String q2=sc.next();
        n.setName(q2);System.out.println("请输入作者：");
        String q3=sc.next();
        n.setAuthor(q3);
        System.out.println("请输入出版社：");
        String q4=sc.next();
        n.setPress(q4);
        System.out.println("请输入价格：");
        double q5=sc.nextDouble();
        n.setPrice(q5);
        System.out.println("请输入数量：");
        int q6=sc.nextInt();
        n.setNumber(q6);
        System.out.println("添加成功~");
        libraries.add(n);
        return;
    }

    //删除指定图书
    public void DelectLibrary(long ISBN){
        int num=SearchLibrary(ISBN);
        System.out.println("----是否删除： y         n");
        char q0=sc.next().charAt(0);
        if(q0=='N'||q0=='n')  return;
        libraries.remove(num);
        System.out.println("删除成功~");
        return;
    }

    //改变指定图书
    public void ChangeLibrary(int ISBN){
        int num=SearchLibrary(ISBN);
        exit:
        while(true) {
            System.out.println("----请选择你要修改的信息：----");
            System.out.println("1：作者");
            System.out.println("2：出版社");
            System.out.println("3：价格");
            System.out.println("4:库存数量");
            System.out.println("----是否返回上一级： y         n");
            char q0=sc.next().charAt(0);
            if(q0=='Y'||q0=='y')  return;
            if(q0=='N'||q0=='n') System.out.println("请输入你的命令：");
            int m1 = sc.nextInt();
            if (m1 == 3) {
                System.out.println("请输入修改后的值：");
                double p1 = sc.nextDouble();
                libraries.get(num).setPrice(p1);
                System.out.println("是否继续修改： y         n");
                char q=sc.next().charAt(0);
                if(q=='Y'||q=='y')  continue exit;
                else return;
            }
            if (m1 == 4) {
                System.out.println("请输入修改后的值：");
                int p2 = sc.nextInt();
                libraries.get(num).setNumber(p2);
                System.out.println("是否继续修改： y         n");
                char q=sc.next().charAt(0);
                if(q=='Y'||q=='y')  continue exit;
                else return;
            }
            if (m1 == 1) {
                System.out.println("请输入修改后的值：");
                String p3 = sc.next();
                libraries.get(num).setAuthor(p3);
                System.out.println("是否继续修改： y         n");
                char q=sc.next().charAt(0);
                if(q=='Y'||q=='y')  continue exit;
                else return;
            }
            if (m1 == 2) {
                System.out.println("请输入修改后的值：");
                String p4 = sc.next();
                libraries.get(num).setPress(p4);
                System.out.println("是否继续修改： y         n");
                char q=sc.next().charAt(0);
                if(q=='Y'||q=='y')  continue exit;
                else return;
            }
            else{
                System.out.println("输入不规范！");
                continue exit;
            }
        }
    }

    //进入图书系统
    public void startIn(int key){
        exit:
        while(true){
            System.out.println("====欢迎进入图书信息系统====");
            System.out.println("0:返回登录界面");
            System.out.println("1：查看全部图书");
            System.out.println("2：查询图书具体信息");
            if(key==1){
                System.out.println("3：添加图书");
                System.out.println("4：删除图书");
                System.out.println("5：更改图书信息");
                System.out.println("请输入你的操作命令：");
            }
            int navigate= sc.nextInt();
            switch (navigate){
                case 0:
                    return;
                case 1:
                    AllLibrary();
                    System.out.println("是否返回： y         n");
                    char q=sc.next().charAt(0);
                    if(q=='Y'||q=='y')  continue exit;
                    else return;
                case 2:
                    System.out.println("请输入图书的ISBN号：");
                    int a1= sc.nextInt();
                    SearchLibrary(a1);
                    System.out.println("是否返回： y         n");
                    char q1=sc.next().charAt(0);
                    if(q1=='Y'||q1=='y')  continue exit;
                    else return;
                case 3:
                    if(key==0){
                        System.out.println("输入不规范，请重新输入！");
                        continue exit;
                    }
                    AddLibrary();
                    System.out.println("是否返回： y         n");
                    char q2=sc.next().charAt(0);
                    if(q2=='Y'||q2=='y')  continue exit;
                    else return;
                case 4:
                    if(key==0){
                        System.out.println("输入不规范，请重新输入！");
                        continue exit;
                    }
                    System.out.println("----请输入你要删除的图书ISBN号：----");
                    int a2= sc.nextInt();
                    DelectLibrary(a2);
                    System.out.println("是否返回： y         n");
                    char q3=sc.next().charAt(0);
                    if(q3=='Y'||q3=='y')  continue exit;
                    else return;
                case 5:
                    if(key==0){
                        System.out.println("输入不规范，请重新输入！");
                        continue exit;
                    }
                    System.out.println("----请输入你要修改的图书ISBN号：----");
                    int a3= sc.nextInt();
                    ChangeLibrary(a3);
                    System.out.println("是否返回： y         n");
                    char q4=sc.next().charAt(0);
                    if(q4=='Y'||q4=='y')  continue exit;
                    else return;
                default:
                    System.out.println("输入不规范，请重新输入！");
            }
        }
    }
}

